package com.codefish.framework.spring.core.utils;

/**
 * 对象相关工具类
 *
 * @author <a href='https://gitee.com/hzf2281'>codefish</a>
 * @version 1.0.0
 * @since 2022/10/31 下午 08:11
 */
public abstract class ObjectUtils {

    /**
     * null值安全的比较两个对象是否相等
     *
     * @param o1 对象1
     * @param o2 对象2
     * @return 两个对象是否相等
     */
    public static boolean nullSafeEquals(Object o1, Object o2) {
        if (o1 == null && o2 == null) {
            return true;
        }
        if (o1 == null || o2 == null) {
            return false;
        }
        return o1.equals(o2);
    }

    /**
     * 安全获取某个对象的hashcode，如果对象本身为null，返回0
     * @param obj 目标对象
     * @return 目标对象的hashcode
     */
    public static int nullSafeHashCode(Object obj) {
        if (obj == null) {
            return 0;
        }
        return obj.hashCode();
    }

}
